/*
 * @Author: liyin 2179253556@qq.com
 * @Date: 2023-03-10 17:33:49
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2025-04-15 08:50:17
 * @FilePath: http.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
/* eslint-disable no-undef */
import axios from 'axios'
/**
 * http请求工具类
 *
 * 请求拦截器 负责将客户端标识token值存储并放置在头部提交给服务端
 *
 * 响应拦截器 负责全局处理业务请求的网络或者业务错误
 */
// 创建axios的实例
// 环境的切换
if (import.meta.env.MODE === 'development') {
    axios.defaults.baseURL = '/api' // 开发环境
} else if (import.meta.env.MODE === 'debug') {
    axios.defaults.baseURL = '' // 调试环境
} else if (import.meta.env.MODE === 'production') {
    axios.defaults.baseURL = '' // 生产环境
}
// axios.defaults.timeout = ''
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8;multipart/form-data'
// const Server = axios.create({
//     baseURL: process.env.NODE_ENV === 'production' ? '' : 'http://campus.hlzhjy.com:50080'
//     // 超时时间
//     // timeout:20000
// })
// 请求拦截
axios.interceptors.request.use((config?: any) => {
    return config;
}, (err: any) => {
    Promise.reject(err)
})
// 响应拦截
axios.interceptors.response.use((config?: any) => {
    return config
})
// export default Server;

/**
 * get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function get(url: any, params?: any) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err.data)
        })
    })
}
/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function post(url: string, params: object) {
    return new Promise((resolve, reject) => {
        axios.post(url, params)
            .then(res => {
                resolve(res.data)
            })
            .catch(err => {
                reject(err.data)
            })
    })
}
export function post2(url: string, params?: object | string, config?: any) {
    return new Promise((resolve, reject) => {
        axios.post(url, params, config)
            .then(res => {
                if (config) {
                    resolve(res)
                } else {
                    resolve(res.data)
                }
            })
            .catch(err => {
                reject(err.data)
            })
    })
}
/**
 * put方法，对应put请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function put(url: string, params: object) {
    return new Promise((resolve, reject) => {
        axios.put(url, params)
            .then(res => {
                resolve(res.data)
            })
            .catch(err => {
                reject(err.data)
            })
    })
}